/**
 * 版权所有 2009-2012山东新北洋信息技术股份有限公司
 * 保留所有权利。
 */
package com.linyaonan.leetcode.easy._387;

/**
 *
 * 给定一个字符串，找到它的第一个不重复的字符，并返回它的索引。如果不存在，则返回 -1。
 *
 * 案例:
 *
 * s = "leetcode"
 * 返回 0.
 *
 * s = "loveleetcode",
 * 返回 2.
 *  
 *
 * 注意事项：您可以假定该字符串只包含小写字母。
 *
 *
 * @ProjectName: leetcode
 * @Package: com.linyaonan.leetcode.easy._387
 * @ClassName: FirstUnique
 * @Author: linyaonan
 * @Date: 2019/12/26 10:27
 */
public class FirstUnique {

    public int firstUniqChar(String s) {
        // 异常字符
        if (s == null || "".equals(s)) {
            return -1;
        }
        // 字符长度为1
        if (s.length() == 1) {
            return 0;
        }
        int[] p = new int[26];
        for (char c : s.toCharArray()) {
            p[c - 'a']++;
        }
        for (int i = 0; i < s.toCharArray().length; i++) {
            if (p[s.charAt(i) - 'a'] == 1) {
                return i;
            }
        }
        return -1;
    }
}
